package com.ruoyi.report_tg.domain.vo;

import java.math.BigDecimal;
import java.util.*;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.common.utils.BigDecimalUtil;
import lombok.Data;

import java.util.Date;


/**
 * 土工试验报告视图对象 report_tg_tgsybg_bs_info
 *
 * @author zyb
 * @date 2024-05-24
 */
@Data
@ExcelIgnoreUnannotated
public class TgsybgBsInfoVo extends ExcelGeneralVo {

    private static final long serialVersionUID = 1L;

    /**
     * 一份excel表格的唯一id(其他的excel主表，都应有此字段）
     */
    @ExcelProperty(value = "一份excel表格的唯一id(其他的excel主表，都应有此字段）")
    private Long excelId;

    /**
     * 共几页
     */
    @ExcelProperty(value = "共几页")
    private Long totalPage;

    /**
     * 第几页
     */
    @ExcelProperty(value = "第几页")
    private Long page;

    /**
     * 报告编号
     */
    @ExcelProperty(value = "报告编号")
    private String baogbh;

    /**
     * 检测单位名称
     */
    @ExcelProperty(value = "检测单位名称")
    private String jiancdwmc;

    /**
     * 工程部位/用途
     */
    @ExcelProperty(value = "工程部位/用途")
    private String gongcbwyt;

    /**
     * 样品名称
     */
    @ExcelProperty(value = "样品名称")
    private String yangpmc;

    /**
     * 样品编号
     */
    @ExcelProperty(value = "样品编号")
    private String yangpbh;

    /**
     * 样品数量
     */
    @ExcelProperty(value = "样品数量")
    private String yangpsl;

    /**
     * 样品状态
     */
    @ExcelProperty(value = "样品状态")
    private String yangpzt;

    /**
     * 样品时间
     */
    @ExcelProperty(value = "样品时间")
    private String yangpsj;

    /**
     * 检测日期
     */
    @ExcelProperty(value = "检测日期")
    private String jiancrq;

    /**
     * 试验条件温度
     */
    @ExcelProperty(value = "试验条件温度")
    private String shiytjwd;

    /**
     * 试验条件湿度
     */
    @ExcelProperty(value = "试验条件湿度")
    private String shiytjsd;

    /**
     * 检测依据
     */
    @ExcelProperty(value = "检测依据")
    private String jiancyj;

    /**
     * 判定依据
     */
    @ExcelProperty(value = "判定依据")
    private String pandyj;

    /**
     * 主要仪器设备名称及编号
     */
    @ExcelProperty(value = "主要仪器设备名称及编号")
    private String zhuyyqsbmcjbh;

    /**
     * 取样位置
     */
    @ExcelProperty(value = "取样位置")
    private String quywz;

    /**
     * 委托/任务编号
     */
    @ExcelProperty(value = "委托/任务编号")
    private String weitrwbh;

    /**
     * 土样产地
     */
    @ExcelProperty(value = "土样产地")
    private String tuycd;

    /**
     * 代表数量
     */
    @ExcelProperty(value = "代表数量")
    private String daibsl;

    /**
     * 附加声明
     */
    @ExcelProperty(value = "附加声明")
    private String fujsm;

    /**
     * 小于该孔径质量百分数（%）60
     */
    @ExcelProperty(value = "小于该孔径质量百分数", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal xiaoygkjzlbfs60;

    /**
     * 小于该孔径质量百分数（%）40
     */
    @ExcelProperty(value = "小于该孔径质量百分数", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal xiaoygkjzlbfs40;

    /**
     * 小于该孔径质量百分数（%）20
     */
    @ExcelProperty(value = "小于该孔径质量百分数", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal xiaoygkjzlbfs20;

    /**
     * 小于该孔径质量百分数（%）10
     */
    @ExcelProperty(value = "小于该孔径质量百分数", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal xiaoygkjzlbfs10;

    /**
     * 小于该孔径质量百分数（%）5
     */
    @ExcelProperty(value = "小于该孔径质量百分数", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal xiaoygkjzlbfs5;

    /**
     * 小于该孔径质量百分数（%）2.0
     */
    @ExcelProperty(value = "小于该孔径质量百分数", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal xiaoygkjzlbfs2p0;

    /**
     * 小于该孔径质量百分数（%）1.0
     */
    @ExcelProperty(value = "小于该孔径质量百分数", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal xiaoygkjzlbfs1p0;

    /**
     * 小于该孔径质量百分数（%）0.5
     */
    @ExcelProperty(value = "小于该孔径质量百分数", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal xiaoygkjzlbfs0p5;

    /**
     * 小于该孔径质量百分数（%）0.25
     */
    @ExcelProperty(value = "小于该孔径质量百分数", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal xiaoygkjzlbfs0p25;

    /**
     * 小于该孔径质量百分数（%）0.075
     */
    @ExcelProperty(value = "小于该孔径质量百分数", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal xiaoygkjzlbfs0p075;

    /**
     * 占总土质量百分比（%）2.0
     */
    @ExcelProperty(value = "占总土质量百分比", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal zhanztzlbfb2p0;

    /**
     * 占总土质量百分比（%）1.0
     */
    @ExcelProperty(value = "占总土质量百分比", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal zhanztzlbfb1p0;

    /**
     * 占总土质量百分比（%）0.5
     */
    @ExcelProperty(value = "占总土质量百分比", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal zhanztzlbfb0p5;

    /**
     * 占总土质量百分比（%）0.25
     */
    @ExcelProperty(value = "占总土质量百分比", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal zhanztzlbfb0p25;

    /**
     * 占总土质量百分比（%）0.075
     */
    @ExcelProperty(value = "占总土质量百分比", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal zhanztzlbfb0p075;

    /**
     * 不均匀系数Cu
     */
    @ExcelProperty(value = "不均匀系数Cu")
    private BigDecimal bujyxs;

    /**
     * 曲率系数Cc
     */
    @ExcelProperty(value = "曲率系数Cc")
    private BigDecimal qulxs;

    /**
     * 土样定名及代号
     */
    @ExcelProperty(value = "土样定名及代号")
    private String tuydmjdh;

    /**
     * 检测结论
     */
    @ExcelProperty(value = "检测结论")
    private String jiancjl;


    /**
     * 详细
     */
    private Map<Long, TgsybgBaDetailVo> baDetailVos;

    /**
     * 施工委托单位
     */
    private String shigwtdw;
    /**
     * 工程名称
     */
    private String gongcmc;

    public void setXiaoygkjzlbfs60(BigDecimal xiaoygkjzlbfs60) {
        this.xiaoygkjzlbfs60 = BigDecimalUtil.stpTrailZero(xiaoygkjzlbfs60);
    }

    public void setXiaoygkjzlbfs40(BigDecimal xiaoygkjzlbfs40) {
        this.xiaoygkjzlbfs40 = BigDecimalUtil.stpTrailZero(xiaoygkjzlbfs40);
    }

    public void setXiaoygkjzlbfs20(BigDecimal xiaoygkjzlbfs20) {
        this.xiaoygkjzlbfs20 = BigDecimalUtil.stpTrailZero(xiaoygkjzlbfs20);
    }

    public void setXiaoygkjzlbfs10(BigDecimal xiaoygkjzlbfs10) {
        this.xiaoygkjzlbfs10 = BigDecimalUtil.stpTrailZero(xiaoygkjzlbfs10);
    }

    public void setXiaoygkjzlbfs5(BigDecimal xiaoygkjzlbfs5) {
        this.xiaoygkjzlbfs5 = BigDecimalUtil.stpTrailZero(xiaoygkjzlbfs5);
    }

    public void setXiaoygkjzlbfs2p0(BigDecimal xiaoygkjzlbfs2p0) {
        this.xiaoygkjzlbfs2p0 = BigDecimalUtil.stpTrailZero(xiaoygkjzlbfs2p0);
    }

    public void setXiaoygkjzlbfs1p0(BigDecimal xiaoygkjzlbfs1p0) {
        this.xiaoygkjzlbfs1p0 = BigDecimalUtil.stpTrailZero(xiaoygkjzlbfs1p0);
    }

    public void setXiaoygkjzlbfs0p5(BigDecimal xiaoygkjzlbfs0p5) {
        this.xiaoygkjzlbfs0p5 = BigDecimalUtil.stpTrailZero(xiaoygkjzlbfs0p5);
    }

    public void setXiaoygkjzlbfs0p25(BigDecimal xiaoygkjzlbfs0p25) {
        this.xiaoygkjzlbfs0p25 = BigDecimalUtil.stpTrailZero(xiaoygkjzlbfs0p25);
    }

    public void setXiaoygkjzlbfs0p075(BigDecimal xiaoygkjzlbfs0p075) {
        this.xiaoygkjzlbfs0p075 = BigDecimalUtil.stpTrailZero(xiaoygkjzlbfs0p075);
    }

    public void setZhanztzlbfb2p0(BigDecimal zhanztzlbfb2p0) {
        this.zhanztzlbfb2p0 = BigDecimalUtil.stpTrailZero(zhanztzlbfb2p0);
    }

    public void setZhanztzlbfb1p0(BigDecimal zhanztzlbfb1p0) {
        this.zhanztzlbfb1p0 = BigDecimalUtil.stpTrailZero(zhanztzlbfb1p0);
    }

    public void setZhanztzlbfb0p5(BigDecimal zhanztzlbfb0p5) {
        this.zhanztzlbfb0p5 = BigDecimalUtil.stpTrailZero(zhanztzlbfb0p5);
    }

    public void setZhanztzlbfb0p25(BigDecimal zhanztzlbfb0p25) {
        this.zhanztzlbfb0p25 = BigDecimalUtil.stpTrailZero(zhanztzlbfb0p25);
    }

    public void setZhanztzlbfb0p075(BigDecimal zhanztzlbfb0p075) {
        this.zhanztzlbfb0p075 = BigDecimalUtil.stpTrailZero(zhanztzlbfb0p075);
    }

    public void setBujyxs(BigDecimal bujyxs) {
        this.bujyxs = BigDecimalUtil.stpTrailZero(bujyxs);
    }

    public void setQulxs(BigDecimal qulxs) {
        this.qulxs = BigDecimalUtil.stpTrailZero(qulxs);
    }

    /**
     * 设备ids
     */
    private String shebIds;

    /**
     * 报告表标识
     */
    private String bgFlag;

    public TgsybgBsInfoVo() {
        this.baDetailVos = new LinkedHashMap<>();
        Long[] keys = {1L, 2L, 3L, 4L, 5L, 6L, 8L, 9L, 14L, 15L, 16L, 17L, 18L};
        for (Long key : keys) {
            baDetailVos.put(key, new TgsybgBaDetailVo());
        }

    }

    // 详细表的内容提到外层
    private String hsl;
    private String md;
    private String yx;
    private String sx;
    private String sxzs;
    private String trcd;
    private String zdgmd;
    private String zjhsl;
    private String cbr93;
    private String cbr94;
    private String cbr96;
    private String yjzhl;
    private String ssl;
}
